In one of its embodiments, system integration encompasses the process of linking together different computing systems, typically through the functional coupling of software applications. To this end, additional integration software and/or hardware is often designed, created, tested, deployed and maintained to achieve the desired result; in a sense, the integration software/hardware is the “glue” used to join the different computing systems together. Such integration software and/or hardware is typically designed by an integration designer. A typical prior art process employed by integration designers is illustrated in FIG. 1.
As shown in FIG. 1, when undertaking an integration software development project, an integration designer uses a number of different sources to produce design documentation, i.e., one or more documents used to define the structure and operation of the desired integration software. Such design documentation typically takes the form of one or more text or graphical documents (produced using, for example, the “MICROSOFT” Word and/or “VISIO” authoring tools) and is used by production teams to engage in the actual creation of the necessary software code. As shown, the integration designer typically reads project requirements comprising one or more documents broadly defining desired outcomes and/or conditions for a project, as well as project architecture documentation, which attempts to define at a high-level the various necessary software components, including their functions and relationships. A knowledge repository, comprising documentation from previous, potentially similar, integration projects may also be consulted by the integration designer in order to maximize reuse of previously successful integration solutions. Furthermore, as shown, the integration designer will typically attempt to incorporate best practices into the design documents. Such best practices reflect the design strategies that, as demonstrated by the collective experience of the organization developing the integration software, have typically lead to the best quality software in terms of reliability, testability, efficiency, usability, etc. Using such best practices, the integration designer is provided guidance such that the resulting design documentation is most likely to lead to superior quality of the software code. As further part of the integration design process, a design reviewer will review the resulting design documentation based on an understanding of the requirements documentation and use of a review checklist that condenses and combines the most salient aspects of the project architecture and best practices.
While the process illustrated in FIG. 1 can be effectively employed, it is highly dependent upon manual execution by the integration designer and design reviewer and their respective levels of individual expertise. It would therefore be advantageous to provide a solution that overcomes the dependence on manually producing the desired design and dependence upon individual expertise, preferably through the use of automation.